package com.education.ai.repository;

import com.education.ai.entity.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

/**
 * 学生数据访问接口
 */
@Repository
public interface StudentRepository extends JpaRepository<Student, Long> {

    /**
     * 根据学生ID查询学生
     */
    Optional<Student> findByStudentId(String studentId);

    /**
     * 根据班级ID查询学生列表
     */
    List<Student> findByClassId(String classId);

    /**
     * 根据年级查询学生列表
     */
    List<Student> findByGrade(String grade);

    /**
     * 根据姓名模糊查询学生
     */
    List<Student> findByNameContaining(String namePart);

    /**
     * 根据班级ID和年级查询学生列表
     */
    List<Student> findByClassIdAndGrade(String classId, String grade);

    /**
     * 根据班级名称查询学生列表
     */
    List<Student> findByClassName(String className);

    Optional<Student> findByPhone(String phone);
    Optional<Student> findByName(String name);
    boolean existsByStudentId(String studentId);
    boolean existsByPhone(String phone);
} 